angular.module('smartOlwApp').controller('ciudadCtrl', function($scope,smartOlwServices){
	var divMessages  			 = document.querySelector('#messageBox');
	divMessages.className 		 = "alert alert-info alert-dismissable";
	
	$scope.titulo_mensajes 		 = "Información!";
	$scope.descripcion_mensajes  = "En esta vista puede administrar el maestro de ciudad";	
	
	$scope.paises 				 = [];
	$scope.departamentos 		 = [];
	$scope.ciudad 				 = {};
	$scope.ciudades				 = [];

	/*
	 * Vamos a crear un metodo que nos cargue la información del pais... 
	 * Para eso requerimos los servicios de pais...
	 * */
	$scope.cargarPaises = function() {
		try{
			var exito = function(respuesta){
				try{
					var paises = angular.fromJson(respuesta.data);
					$scope.paises.push({dspais : 'Seleccionar' , copais : null});
					$.each(paises, function( index , pais ) {
						$scope.paises.push(pais);
				    });
				}catch(e){
					alert(e.message);
				}
			}

			var error = function(respuesta){
				$scope.titulo_mensajes = "Error!";
				$scope.descripcion_mensajes  = "Se produjo un error al momento de consultar la información de paises";
				divMessages.className = "alert alert-danger alert-dismissable";
				alert(angular.toJson(respuesta));
			}
			smartOlwServices.sendGet(hostSmart+context+endPointPais+methodGetAllPais,exito,error);
		}catch(e){
			$scope.titulo_mensajes = "Error!";
			$scope.descripcion_mensajes  = "Se produjo un error al momento de consultar la información de paises";
			divMessages.className = "alert alert-danger alert-dismissable";
		}
		
	}
	
	/*
	 * Metodo para cargar los departamentos por pais...
	 * */
	$scope.cargarDepartamentos 	= function(pais) {
		var departamento 		= {scpais : {scpais : pais}};
		try{
			var exito = function(respuesta){
				try{
					$scope.departamentos 	= [];
					var departamentos 		= angular.fromJson(respuesta.data);
					$scope.departamentos.push({dsdepartamento : 'Seleccionar' , scdepartamento : null});
					$.each(departamentos, function( index , pais ) {
						$scope.departamentos.push(pais);
				    });
				}catch(e){
					alert(e.message);
				}
			}

			var error = function(respuesta){
				$scope.titulo_mensajes 			= "Error!";
				$scope.descripcion_mensajes  	= "Se produjo un error al momento de consultar la información de departamentos";
				divMessages.className 			= "alert alert-danger alert-dismissable";
				alert(angular.toJson(respuesta));
			}
			smartOlwServices.sendPost(
				angular.toJson(departamento),
				hostSmart+context+endPointDepartamento+methodGetDepartamento,
				exito,
				error);
		}catch(e){
			$scope.titulo_mensajes 			= "Error!";
			$scope.descripcion_mensajes  	= "Se produjo un error al momento de consultar la información de paises";
			divMessages.className 			= "alert alert-danger alert-dismissable";
		}
	}
	
	
	$scope.grabar = function(ciudad){
		
		var exito = function(respuesta){
			var objeto			= respuesta.data;
			$scope.descripcion_mensajes  = objeto.mensaje;
			var tipo			= (objeto.codigo == "200")?"success":"danger";
			divMessages.className = "alert alert-"+tipo+" alert-dismissable";
			/*
			var backuppais				= departamento.scpais;
			if(tipo == "success") {
				$scope.limpiar(departamento);
				$scope.consultar({scpais : backuppais}, objeto.mensaje);
			}
			*/
		}

		var error = function(respuesta){

			alert(angular.toJson(respuesta));
			
		}
		
		var backupdepartamento			= ciudad.departamentodto;
		var indepartamento				= $scope.buscarDepartamento(backupdepartamento);
		
		ciudad.departamentodto			= $scope.departamentos[indepartamento];
		ciudad.cousuario				= 'admin';
		ciudad.fhingreso				= new Date();
		
		smartOlwServices.sendPut(
			angular.toJson(ciudad),
			hostSmart+context+endPointCiudad+methodSetCiudad,exito,error);
		
		ciudad.departamentodto			= backupdepartamento;

	}
	
	$scope.buscarDepartamento 			= function(codigo) {
		var posicion = -1;
		for(var index= 0; index < $scope.departamentos.length; index++) {
			if(codigo == $scope.departamentos[index].scdepartamento) {
				posicion = index;
				break;
			}
		}
		return posicion;
	}
	
	
	$scope.consultar							= function(objeto) {
		try {
			var exito 							= function(respuesta) {
			   var lista						= angular.fromJson(respuesta.data);
			   	   $scope.ciudades 				= lista;
			   	   
				if($scope.ciudades != null && $scope.ciudades.length > 0) {
				   $scope.descripcion_mensajes  = "Tenemos " + $scope.ciudades.length + " ciudades";
				}
				else {
				   $scope.titulo_mensajes 		= "Información!";
				   $scope.descripcion_mensajes 	= "No hay ciudades registradas";	
				}
				divMessages.className 			= "alert alert-success alert-dismissable";
			};
			
			var error 							= function(respuesta) {
				$scope.titulo_mensajes 			= "Error!";
				$scope.descripcion_mensajes  	= "Se produjo un error al momento de consultar ciudades";
				divMessages.className 			= "alert alert-danger alert-dismissable";
				console.log(angular.toJson(respuesta));
			};
			
			objeto								= (objeto == null)?{}:objeto;
			var departamentodto					= (objeto != null)?objeto.departamentodto:null;
			 if(departamentodto != null) {
				var indepart					= $scope.buscarDepartamento(departamentodto);
				objeto.departamentodto 			= $scope.departamentos[indepart];
			 }
			
			smartOlwServices.sendPost(
				angular.toJson(objeto),
				hostSmart+context+endPointCiudad+methodGetCiudad,exito,error
			);
			
			objeto.departamentodto 				= departamentodto;
		}
		catch(e){
			$scope.titulo_mensajes 			= "Error!";
			$scope.descripcion_mensajes  	= "Se produjo un error al momento de consultar ciudades";
			divMessages.className 			= "alert alert-danger alert-dismissable";
			console.log(e);
		}
	};
	
	
	$scope.cargarPaises();	
	
	
	
	
	
	
	
/*	
	
	$scope.consultar = function(ciudad){
		var exito = function(respuesta){
			alert(angular.toJson(respuesta.data));
		}

		var error = function(respuesta){
			alert(angular.toJson(respuesta));
		}
		ciudadServices.sendGet('http://localhost:8080/SmartServicesWeb/web/SmartService/getAllDocente',exito,error){
		}
	}
	
	$scope.limpiar = function(ciudad){
		
		var exito = function(respuesta){
			alert(angular.toJson(respuesta.data));
		}

		var error = function(respuesta){

			alert(angular.toJson(respuesta));
			
		}

		ciudadServices.sendPut(angular.toJson(ciudad),'http://localhost:8080/SmartServicesWeb/web/SmartService/setDocente',exito,error){

		}

	}
	$scope.eliminar = function(ciudad){
		
		var exito = function(respuesta){
			alert(angular.toJson(respuesta.data));
		}

		var error = function(respuesta){

			alert(angular.toJson(respuesta));
			
		}

		ciudadServices.sendPut(angular.toJson(ciudad),'http://localhost:8080/SmartServicesWeb/web/SmartService/setDocente',exito,error){

		}

	}
	
	
	*/

});